Many companies and other organizations operate computer networks that interconnect numerous computing systems to support their operations, such as with the computing systems being co-located (e.g., as part of a local network) or instead located in multiple distinct geographical locations (e.g., connected via one or more private or public intermediate networks). For example, data centers housing significant numbers of interconnected computing systems have become commonplace, such as private data centers that are operated by and on behalf of a single organization, and public data centers that are operated by entities as businesses to provide computing resources to customers. Some public data center operators provide network access, power, and secure installation facilities for hardware owned by various customers, while other public data center operators provide “full service” facilities that also include hardware resources made available for use by their customers. However, as the scale and scope of typical data centers has increased, the tasks of provisioning, administering, and managing the physical computing resources have become increasingly complicated.
The advent of virtualization technologies for commodity hardware has provided benefits with respect to managing large-scale computing resources for many customers with diverse needs, allowing various computing resources to be efficiently and securely shared by multiple customers. For example, virtualization technologies may allow a single physical computing machine to be shared among multiple users by providing each user with one or more virtual machines hosted by the single physical computing machine, with each such virtual machine being a software simulation acting as a distinct logical computing system that provides users with the illusion that they are the sole operators and administrators of a given hardware computing resource, while also providing application isolation and security among the various virtual machines. Furthermore, some virtualization technologies are capable of providing virtual resources that span two or more physical resources, such as a single virtual machine with multiple virtual processors that spans multiple distinct physical computing systems. As another example, virtualization technologies may allow data storage hardware to be shared among multiple users by providing each user with a virtualized data store which may be distributed across multiple data storage devices, with each such virtualized data store acting as a distinct logical data store that provides users with the illusion that they are the sole operators and administrators of the data storage resource.
In many environments, operators of provider networks that implement different types of virtualized computing, storage, and/or other network-accessible functionality allow customers to reserve or purchase access to resources in any of several different resource acquisition modes, and with different allocation interruptibility characteristics. For example, a customer may reserve a virtual compute resource instance for a relatively long duration, such as one year or three years, with a guarantee that the customer will be provided access to that instance for the specified duration, and that (barring emergency situations) access to that instance will not be revoked for that specified duration. Alternatively, a customer may purchase resource instances for shorter terms on an ad-hoc basis as needed; in some cases such short term resource allocations may be extended at will by the customer, with a revocation policy in effect that ensures that until the client wishes to terminate an instance, the client will continue to have uninterrupted access. In yet another scenario, resource instances may be allocated in an interruptible mode in a marketplace where price varies based on supply and demand, so that for example clients willing to have their access revoked under certain conditions (e.g., if a higher bid is received for the instance) can potentially take advantage of lower prices. Resources may be parceled out to users in different capacity units or bundles—e.g., several different compute instance sizes or performance levels may be supported. Often, some or all of the underlying platforms (such as hardware servers combined with virtualization software) set up by the provider network operator may each be capable of supporting multiple resource units, of which only a few may be activated at any given point in time. In certain situations, planned configuration changes to such platforms may result in an underutilization of the platform capacity, thereby reducing the returns on infrastructure investment of the provider network operator.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.